// https://nuxt.com/docs/api/configuration/nuxt-config
import { resolve } from 'path'
console.log(process.env.baseURL, '@@@')

export default defineNuxtConfig({
  // devtools: { enabled: true },
  nitro: {
    devProxy: {
      '/api': {
        target: `${process.env.baseURL}/api`,
        changeOrigin: true,
        prependPath: true,
      },
    },
    routeRules: {
      '/api/**': {
        proxy: `${process.env.baseURL}/api/**`,
      },
    },
  },
  app: {
    head: {
      viewport: 'width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no',
      link: [
        {
          rel: 'icon',
          type: 'image/x-icon',
          href: 'ico.ico',
          sizes: '16x16',
        },
      ],
      script: [
        {
          src: '/scripts/px2rem.js',
        },
      ],
      meta: [{ name: 'description', content: 'u8' }],
      title: 'U8.com',
    },
  },

  plugins: [
    {
      src: '~/plugins/loadings.ts',
      mode: 'client',
    },

    // {
    //   src: '~/plugins/rem.ts',
    //   mode: 'client',
    // },
  ],

  runtimeConfig: {
    // 运行时常量
    public: {
      baseURL: process.env.baseURL,
      wsURL: process.env.wsURL,
      theme: process.env.theme || 'u8',
    },
  },
  modules: ['@pinia/nuxt', '@pinia-plugin-persistedstate/nuxt', '@vueuse/nuxt', 'nuxt-svgo'],
  pinia: {
    storesDirs: ['./store/**'],
  },
  svgo: {
    autoImportPath: './assets/svgs/',
    componentPrefix: 'i',
  },

  vite: {
    css: {
      preprocessorOptions: {
        scss: {
          additionalData: '@use "@/assets/styles/global.scss" as *;', // 注意文件路径要配成自己的
        },
      },
    },
    plugins: [],
  },

  postcss: {
    plugins: {
      'postcss-pxtorem': {
        // rootValue: 37.5,
        rootValue({ file }: { file: string }) {
          return file.includes('vant') ? 37.5 : 75
        },
        propList: ['*'],

        // mediaQuery:
        minPixelValue: 1,
        unitPrecision: 3,

        // selectorBlackList: ['el'],
      },

      // 'postcss-px-to-viewport-8-plugin': {
      //   unitToConvert: 'px', // 要转化的单位
      //   viewportWidth: 750, // UI设计稿的宽度
      //   // viewportHeight: 667, // UI
      //   unitPrecision: 6, // 转换后的精度，即小数点位数
      //   propList: ['*'], // 指定转换的css属性的单位，*代表全部css属性的单位都进行转换
      //   // viewportUnit: 'vw', // 指定需要转换成的视窗单位，默认vw
      //   // fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位，默认vw
      //   exclude: [/node_modules/i],

      //   // 转换的黑名单，在黑名单里面的我们可以写入字符串，只要类名包含有这个字符串，就不会被匹配。比如selectorBlackList: ['wrap'],它表示形如wrap,my-wrap,wrapper这样的类名的单位，都不会被转换
      //   selectorBlackList: ['ignore', 'el'], // 指定不转换为视窗单位的类名，
      //   minPixelValue: 1, // 默认值1，小于或等于1px则不进行转换
      //   mediaQuery: true, // 是否在媒体查询的css代码中也进行转换，默认false
      //   replace: true, // 是否转换后直接更换属性值
      //   // exclude: [/node_modules/], // 设置忽略文件，用正则做目录名匹配
      //   // include: [/node_modules/],
      //   landscape: false, // 是否处理横屏情况
      // },
    },
  },

  css: ['vant/lib/index.css', '@assets/theme.scss', 'animate.css/animate.min.css'],

  alias: {
    '@': resolve(__dirname, './'),
    '@assets': resolve(__dirname, `./assets/${process.env.theme}`),
    '@images': resolve(__dirname, './assets/images'),
  },

  build: {},
  compatibilityDate: '2024-07-15',
  experimental: {
    renderJsonPayloads: false,
  },
})
